package org.happy.tester.hitest.support.annotation;

import org.happy.tester.hitest.enums.PointcutTypeEnum;
import org.testng.annotations.CustomAttribute;
import org.testng.annotations.Test;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @Classname Pointcut
 * @Description 标记切点的注解
 * @Date 2020/6/24 12:09 上午
 * @Created by jc.bai
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Pointcut {

    /**
     * 标记调用模式
     */
    PointcutTypeEnum type() default PointcutTypeEnum.COLLECT;

    /**
     * 目标方法所在类名
     */
    String className();

    /**
     * 目标方法名
     */
    String methodName();

    /**
     * 目标方法参数类型
     */
    String[] paramsTypeArray() default "";

    /**
     * 目标应用机器IP
     */
    String appIp();

    /**
     * 需要替换的参数和对应的值 json 格式
     */
    String value() default "";

    /**
     * 描述
     */
    String description() default "";
}